package com.reactim.message.dto;

import lombok.Data;
import java.util.List;

/**
 * 批量发送消息请求
 */
@Data
public class BatchSendMessageRequest {
    
    /**
     * 批量消息列表
     */
    private List<SendMessageRequest> messages;
    
    /**
     * 批处理选项
     */
    private BatchOptions options;
    
    /**
     * 批处理选项
     */
    @Data
    public static class BatchOptions {
        /**
         * 是否需要事务处理（全部成功或全部失败）
         */
        private Boolean transactional = false;
        
        /**
         * 批处理大小限制
         */
        private Integer batchSize = 100;
        
        /**
         * 是否并行处理
         */
        private Boolean parallel = true;
        
        /**
         * 超时时间（毫秒）
         */
        private Long timeoutMs = 30000L;
        
        /**
         * 失败重试次数
         */
        private Integer retryCount = 3;
    }
}